An encoder is a device, circuitry or computer program that is capable of analyzing a signal such as an audio signal and outputting a signal in an encoded form. The resulting signal is often used for transmission, storage and/or encryption purposes. On the other hand a decoder is a device, circuitry or computer program that is capable of inverting the encoder operation, in that it receives the encoded signal and outputs a decoded signal.
In most state-of the art encoders such as audio encoders, each frame of the input signal is analyzed in the frequency domain. The result of this analysis is quantized and encoded and then transmitted or stored depending on the application. At the receiving side (or when using the stored encoded signal) a corresponding decoding procedure followed by a synthesis procedure makes it possible to restore the signal in the time domain.
Codecs are often employed for compression/decompression of information such as audio and video data for efficient transmission over bandwidth-limited communication channels.
In particular, there is a high market need to transmit and store audio signals at low bit rates while maintaining high audio quality. For example, in cases where transmission resources or storage is limited low bit rate operation is an essential cost factor. This is typically the case, for example, in streaming and messaging applications in mobile communication systems.
A general example of an audio transmission system using audio encoding and decoding is schematically illustrated in FIG. 1. The overall system basically comprises an audio encoder 10 and a transmission module (TX) 20 on the transmitting side, and a receiving module (RX) 30 and an audio decoder 40 on the receiving side.
An audio signal can be considered quasi-stationary, i.e. stationary for short time periods. For example, a transform-based audio codec divides the signal into short time periods, frames, and relies on the quasi-stationarity to achieve efficient compression.
The audio signal may contain a number of rapid changes in frequency spectrum or amplitude, so called transients. It is desirable to detect these transients such that the audio codec can take proper actions to avoid the audible artifacts that transients may cause in for example transform-based audio codecs (for example the pre-echo effect; i.e. quantization noise spread in time).
For this reason a transient detector is used in connection with the audio codec. The transient detector analyzes the audio signal and is responsible for signaling detected transients to the encoder. There are transient detectors operating in the time-domain as well as transient detectors operating in the frequency-domain.
For example, a transient detector is commonly included into audio codecs as the input to the window switching module [1, 2].